Method for improving performance of a few data access on a large area in non-volatile storage device

ABSTRACT

A method for improving performance of a few data access on a large area in non-volatile storage device is disclosed. The steps are: dividing data stored in a storage buffer to a L side with size of L-byte, a M side with size of M-byte, and a dummy with a predetermined size; The controller reads out the M side and storing in the RAM corresponding to the M side; updating a new data at the L-side from a host; combining the new dada and the data at M-side to become a present data; sending the present data to the storage buffer; and combining the present data and the data at the dummy side to become a final data, and programming the final data.

FIELD OF THE INVENTION

The present invention relates to a method for improving performance of a few data access on a large area in no-volatile storage device.

BACKGROUND OF THE INVENTION

When the fixed minimum program number (FMPN) becomes large, the performance of access of data of some specific amount of may become poor.

FIG. 1 is a block diagram of a non-volatile storage device in accordance with this invention.

Please refer to FIG. 1, Please reference to FIG. 1, the non-volatile data storage device 20 for storing data from a host 10. The non-volatile data storage device may be a memory card, but not limited thereto. Generally, the non-volatile data storage device 20 may comprise a controller 21, a non-volatile data storage medium 22 (such as flash memory), and a random access memory (RAM) 23.

The controller 21 is used as an interface between the host 10 and the non-volatile data storage medium 22 and the random access memory 23. The non-volatile data storage medium 22 is for data storage and could be a hard disk, or a flash memory. The random access memory 23 is a volatile memory, which may store temporary data or information for controller operation. The access performance is referred as how much data should be transferred between random access memory 23 and storage medium 22 to complete an action.

FIG. 2A is a schematic diagram of the conventional operation method for 8 KB.

Please refer to FIG. 2A, FMPN is 8 KB and assume that the new data to be updated is 4 KB on L side.

Due to characteristic of non-volatile data storage device 20, the residue 4 KB data on R side must be read out since the data should be kept as valid, shown as in step 11. Update the new 4 KB data to L side of RAM, shown as in step 12. Send the 8 KB data from RAM to storage buffer, shown as in step 13. Program the 8 KB(FMPN) data from storage buffer to array, shown as in step 14. The total amount of data been transferred between random access memory and storage medium is 4 KB(step 11)+8 KB(step 13)=12 KB.

FIG. 2B is a flowchart of the conventional operation method for 8 KB.

Please refer to FIG. 2B, the steps of the conventional operation method for 8 KB comprise:

-   -   step SA1: receiving new data;     -   step SA2: checking if the amount of the new data is less than         FMPN; if, yes, running next step; if no, the new data is         multiple FMPN access (step 21), and then checking if finishing         the step (step 22); if no, running next step;     -   step SA3: reading the 4 KB-part of the data which does not need         to be updated from a non-volatile storage to a volatile storage;     -   step SA4: merging the new data and the data does not need to be         updated; and     -   step SA5: programming the non-volatile storage with FMPN.

FIG. 3 is a schematic diagram of the conventional operation method for 16 KB FMPN.

Please refer to FIG. 3, FMPN is 16 KB and assume that the new data to be updated is 4 KB on L side. The flowchart is the same as FIG. 2B, so the drawing is omitted.

Due to characteristic of non-volatile data storage device, the residue 12 KB data on R side must be read out since the data should be kept as valid, shown as in step 21. Update the new 4 KB data to L side of RAM, shown as in step 22. Send the 16 KB data from RAM to storage buffer, shown as in step 23. Program the 16 KB(FMMN) data from storage buffer to array, shown as in step 24. The total amount of data been transferred between random access memory and storage medium is 12 KB(step 21)+16 KB(step 23)=28 KB.

Comparing to the condition of 8 KB FMPN, the amount of transferred data is 12 KB, the performance has been downgraded a lot.

SUMMARY OF THE INVENTION

Due to the characteristic of non-volatile data storage device, there is always a Fixed Minimum Program Number (FMPN) for the amount of the data to be programed. The fixed minimum program number will be abbreviated as FMPN and frequently used in this invention. The amount of the data to be programed must be multiple of FMPN.

In most case, the amount of the new data to be updated may less than the FMPN. Data which amount is FMPN must be programed even when the amount of new data is less.

A method for improving performance of a few data access on a large area in non-volatile storage device is provided and the steps of the method comprises:

-   -   step SB1: dividing the FMPN to three parts as a L side, a M side         and a dummy side disposed at a storage buffer, wherein the size         of the L side, the M side, and the dummy side are L bytes, M         bytes, and predetermined bytes respectively;     -   step SB2: assuming the data to be updated is located at the L         side, and a controller reading out the data which located at the         M side to the storage buffer;     -   step SB3: updating a new data whose length is L bytes to the L         side of the storage buffer from the host;     -   step SB4: combining the new data at the L side and the data at         the M side to become a present data; and     -   step SB5: combining the data of the L side, the M side and the         dummy data located at the dummy side to become a final data, and         programming the final data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a non-volatile storage device.

FIGS. 2A and 2B are respectively a schematic diagram and a flowchart of the conventional operation method for 8 KB.

FIG. 3 is a schematic diagram of the conventional operation method for 16 KB FMPN.

FIG. 4 is a schematic diagram of an operation method for data access on left side.

FIG. 5 is a schematic diagram of a method for improving performance of a few data access on a large area in non-volatile storage device in accordance with this invention.

FIG. 6 is a flowchart of the method for improving performance of a few data access on a large area in non-volatile storage device in accordance with this invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 6 is a flowchart of the method for improving performance of a few data access on a large area in non-volatile storage device in accordance with this invention.

Please refer to FIG. 6, the steps of the method for improving performance of a few data access on a large area in non-volatile storage device in accordance with this invention may comprise:

-   -   step SB1: dividing the FMPN to three parts as a L side, a M side         and a dummy side disposed at a storage buffer, wherein the size         of the L side, the M side, and the dummy side are L bytes, M         bytes, and predetermined bytes respectively;     -   step SB2: assuming the data to be updated is located at the L         side, and a controller 21 reading out the data which located at         the M side to the storage buffer;     -   step SB3: updating a new data whose length is L bytes to the L         side of the storage buffer from the host;     -   step SB4: combining the new data at the L side and the data at         the M side to become a present data; and     -   step SB5: combining the data of the L side, the M side and the         dummy data located at the dummy side to become a final data, and         programming the final data.

FIG. 4 is a schematic diagram of an operation method for data access on left side.

The storage device is shown as in FIG. 1. Please refer to FIG. 4, a little waste on storage capacity is acceptable since the storage size is huge today due to the advanced storage process. Allocate several segments as temporary storage, which only part of the capacity is used, as an example shown in left side in FIG. 4., the FMPN is 16 KB, but we use only 8 KB to record the valid data, where the “dummy” 8 KB are dummy data which are considered as “invalid data”. Perform data access on them. When they are full or at a proper time, perform a merge procedure. The merge procedure means that merge 2 pieces of valid data to fill the whole FMPN and program to the final storage. Operating this merge procedure in the background can hide time cost of the merge.

FIG. 5 is a schematic diagram of a method for improving performance of a few data access on a large area in non-volatile storage device in accordance with this invention.

Please refer to FIG. 5, FMPN may be 16 KB and assumed that the new data to be updated is 4 KB on the L side.

The dummy 8 KB on the dummy side is a little waste to exchange for performance and will not be used anymore. Assume the data to be updated is located at L-side. Due to characteristic of non-volatile data storage device, the 4 KB data of M side must be read out since the data should be kept as valid, as shown in step 31. Update the new 4 KB data to L side of ram, as shown in step 32. Send the 8 KB(L side+M side) data from ram to storage buffer, as shown in step 33. Program the 16 KB(FMPN) data from storage buffer to array, as shown in step 34. The total amount of data been transferred between random access memory and storage medium is 4 KB(step 31)+8 KB(step 33)=12 KB.

Comparing to the condition of 8 KB FMPN, the amount of transferred data is 12 KB, the performance is the same. Therefore, the performance even when FMPN becomes large may be kept. 

What is claimed is:
 1. A method for improving performance of a few data access on a large area in non-volatile storage device, the steps comprised: step SB1: dividing a fixed minimum program number (FMPN) to three parts as a L side, a M side and a dummy side disposed at a storage buffer, wherein the size of the L side, the M side, and the dummy side are L bytes, M bytes, and predetermined bytes respectively; step SB2: assuming the data to be updated is located at the L side, and a controller reading out the data which located at the M side to the storage buffer; step SB3: updating a new data whose length is L bytes to the L side of the storage buffer from the host; step SB4: combining the new data at the L side and the data at the M side to become a present data; and step SB5: combining the data of the L side, the M side and the dummy data located at the dummy side to become a final data, and programming the final data. 